1. Field of the Invention
The present invention generally relates to managing data abstraction models and, more particularly, to managing metadata associated with a data abstraction model abstractly describing data in a database.
2. Description of the Related Art
Databases are computerized information storage and retrieval systems. The most prevalent type of database is the relational database, a tabular database in which data is defined so that it can be reorganized and accessed in a number of different ways. A distributed database is one that can be dispersed or replicated among different points in a network. An object-oriented programming database is one that is congruent with the data defined in object classes and subclasses.
Regardless of the particular architecture, a database management system (DBMS) can be structured to support a variety of different types of operations for a requesting entity (e.g., an application, the operating system or an end user). Such operations can be configured to retrieve, add, modify and delete information being stored and managed by the DBMS. Standard database access methods support these operations using high-level query languages, such as the Structured Query Language (SQL). The term “query” denominates a set of commands that cause execution of operations for processing data from a stored database. For instance, SQL supports four types of query operations, i.e., SELECT, INSERT, UPDATE and DELETE. A SELECT operation retrieves data from a database, an INSERT operation adds new data to a database, an UPDATE operation modifies data in a database and a DELETE operation removes data from a database.
In commonly assigned U.S. patent application Ser. No. 10/083,075 (the '075 application), filed Feb. 26, 2002 entitled “APPLICATION PORTABILITY AND EXTENSIBILITY THROUGH DATABASE SCHEMA AND QUERY ABSTRACTION”, a framework was disclosed for abstractly viewing physical data. The framework of the '075 application provided a requesting entity (i.e., an end-user or application) with a logical representation of physical data. In other words, the framework of the '075 application provided the requesting entity with a data abstraction model that logically describes an underlying physical data structure. In this way, the requesting entity is decoupled from the underlying physical data to be accessed. Thus, changes to the physical data do not necessitate changes to applications accessing the physical data.
Using a data abstraction model according to the framework of the '075 application, abstract queries based on the framework can be constructed without regard for the makeup of the underlying physical data. For instance, assume a user in a hospital who wants to determine last and first names of patients having had a Hemoglobin A1c (HgBA1c) test with a corresponding result value greater than 10%. To this end, the user may specify the following abstract query:FIND LAST NAME, FIRST NAME WHERE HGBA1C-RESULT>10
In order to guarantee that the abstract query produces an expected result, the user must ensure that the logical field names “LAST NAME”, “FIRST NAME” and “HGBA1C-RESULT” specified in the abstract query correspond to logical field names of respective logical fields in the data abstraction model. However, if the user is not aware of a logical field name of a required logical field, e.g., the “HGBA1C-RESULT” field, the user must retrieve the required logical field from the data abstraction model to determine the corresponding logical field name.
Assume now that there are thousands or even tens or hundreds of thousands of fields in the data abstraction model. Assume further that these thousands or tens or hundreds of thousands of logical fields are grouped into multiple categories. Accordingly, it can be difficult for the user to determine the required logical field. For instance, is a HgbA1c test a hematology test or a body chemistry test? The question is complicated by knowing that there may be 20 different hemoglobin tests based on body locations at which the test is taken, and means of sample extraction. Accordingly, hemoglobin tests can be grouped in a plurality of different categories, each having multiple logical fields. Thus, identifying a required logical field can be a tedious and frustrating process for the user.
Therefore, there is a need for an efficient technique for identifying logical fields from a data abstraction model.